#pragma once

namespace sol9
{
namespace encoding
{
	enum eCodePage
	{
		ECP_Default				= 0,

		ECP_ASCII				= 20127,
		ECP_Unicode				= 1200,
		ECP_UnicodeBigEndian	= 1201,
		ECP_UTF8				= 65001,

		ECP_Korean				= 949,
		ECP_Japanese			= 932,
		ECP_ChineseSimplified	= 936,
		ECP_ChineseTraditional	= 950
	};

	enum eIANACodePage
	{
		EICP_IBM037                    		= 37,		// IBM EBCDIC (US-Canada)
		EICP_IBM437                    		= 437,		// OEM United States
		EICP_IBM500                    		= 500,		// IBM EBCDIC (International)
		EICP_ASMO_708                  		= 708,		// Arabic (ASMO 708)
		EICP_DOS_720                   		= 720,		// Arabic (DOS)
		EICP_ibm737                    		= 737,		// Greek (DOS)
		EICP_ibm775                    		= 775,		// Baltic (DOS)
		EICP_ibm850                    		= 850,		// Western European (DOS)
		EICP_ibm852                    		= 852,		// Central European (DOS)
		EICP_IBM855                    		= 855,		// OEM Cyrillic
		EICP_ibm857                    		= 857,		// Turkish (DOS)
		EICP_IBM00858                  		= 858,		// OEM Multilingual Latin I
		EICP_IBM860                    		= 860,		// Portuguese (DOS)
		EICP_ibm861                    		= 861,		// Icelandic (DOS)
		EICP_DOS_862                   		= 862,		// Hebrew (DOS)
		EICP_IBM863                    		= 863,		// French Canadian (DOS)
		EICP_IBM864                    		= 864,		// Arabic (864)
		EICP_IBM865                    		= 865,		// Nordic (DOS)
		EICP_cp866                     		= 866,		// Cyrillic (DOS)
		EICP_ibm869                    		= 869,		// Greek, Modern (DOS)
		EICP_IBM870                    		= 870,		// IBM EBCDIC (Multilingual Latin-2)
		EICP_windows_874               		= 874,		// Thai (Windows)
		EICP_cp875                     		= 875,		// IBM EBCDIC (Greek Modern)
		EICP_shift_jis                 		= 932,		// Japanese (Shift-JIS)
		EICP_gb2312                    		= 936,		// Chinese Simplified (GB2312)
		EICP_ks_c_5601_1987            		= 949,		// Korean
		EICP_big5                      		= 950,		// Chinese Traditional (Big5)
		EICP_IBM1026                   		= 1026,		// IBM EBCDIC (Turkish Latin-5)
		EICP_IBM01047                  		= 1047,		// IBM Latin-1
		EICP_IBM01140                  		= 1140,		// IBM EBCDIC (US-Canada-Euro)
		EICP_IBM01141                  		= 1141,		// IBM EBCDIC (Germany-Euro)
		EICP_IBM01142                  		= 1142,		// IBM EBCDIC (Denmark-Norway-Euro)
		EICP_IBM01143                  		= 1143,		// IBM EBCDIC (Finland-Sweden-Euro)
		EICP_IBM01144                  		= 1144,		// IBM EBCDIC (Italy-Euro)
		EICP_IBM01145                  		= 1145,		// IBM EBCDIC (Spain-Euro)
		EICP_IBM01146                  		= 1146,		// IBM EBCDIC (UK-Euro)
		EICP_IBM01147                  		= 1147,		// IBM EBCDIC (France-Euro)
		EICP_IBM01148                  		= 1148,		// IBM EBCDIC (International-Euro)
		EICP_IBM01149                  		= 1149,		// IBM EBCDIC (Icelandic-Euro)
		EICP_utf_16                    		= 1200,		// Unicode
		EICP_unicodeFFFE               		= 1201,		// Unicode (Big-Endian)
		EICP_windows_1250              		= 1250,		// Central European (Windows)
		EICP_windows_1251              		= 1251,		// Cyrillic (Windows)
		EICP_Windows_1252              		= 1252,		// Western European (Windows)
		EICP_windows_1253              		= 1253,		// Greek (Windows)
		EICP_windows_1254              		= 1254,		// Turkish (Windows)
		EICP_windows_1255              		= 1255,		// Hebrew (Windows)
		EICP_windows_1256              		= 1256,		// Arabic (Windows)
		EICP_windows_1257              		= 1257,		// Baltic (Windows)
		EICP_windows_1258              		= 1258,		// Vietnamese (Windows)
		EICP_Johab                     		= 1361,		// Korean (Johab)
		EICP_macintosh                 		= 10000,	// Western European (Mac)
		EICP_x_mac_japanese            		= 10001,	// Japanese (Mac)
		EICP_x_mac_chinesetrad         		= 10002,	// Chinese Traditional (Mac)
		EICP_x_mac_korean              		= 10003,	// Korean (Mac)
		EICP_x_mac_arabic              		= 10004,	// Arabic (Mac)
		EICP_x_mac_hebrew              		= 10005,	// Hebrew (Mac)
		EICP_x_mac_greek               		= 10006,	// Greek (Mac)
		EICP_x_mac_cyrillic            		= 10007,	// Cyrillic (Mac)
		EICP_x_mac_chinesesimp         		= 10008,	// Chinese Simplified (Mac)
		EICP_x_mac_romanian            		= 10010,	// Romanian (Mac)
		EICP_x_mac_ukrainian           		= 10017,	// Ukrainian (Mac)
		EICP_x_mac_thai                		= 10021,	// Thai (Mac)
		EICP_x_mac_ce                  		= 10029,	// Central European (Mac)
		EICP_x_mac_icelandic           		= 10079,	// Icelandic (Mac)
		EICP_x_mac_turkish             		= 10081,	// Turkish (Mac)
		EICP_x_mac_croatian            		= 10082,	// Croatian (Mac)
		EICP_x_Chinese_CNS             		= 20000,	// Chinese Traditional (CNS)
		EICP_x_cp20001                 		= 20001,	// TCA Taiwan
		EICP_x_Chinese_Eten            		= 20002,	// Chinese Traditional (Eten)
		EICP_x_cp20003                 		= 20003,	// IBM5550 Taiwan
		EICP_x_cp20004                 		= 20004,	// TeleText Taiwan
		EICP_x_cp20005                 		= 20005,	// Wang Taiwan
		EICP_x_IA5                     		= 20105,	// Western European (IA5)
		EICP_x_IA5_German              		= 20106,	// German (IA5)
		EICP_x_IA5_Swedish             		= 20107,	// Swedish (IA5)
		EICP_x_IA5_Norwegian           		= 20108,	// Norwegian (IA5)
		EICP_us_ascii                  		= 20127,	// US-ASCII
		EICP_x_cp20261                 		= 20261,	// T.61
		EICP_x_cp20269                 		= 20269,	// ISO-6937
		EICP_IBM273                    		= 20273,	// IBM EBCDIC (Germany)
		EICP_IBM277                    		= 20277,	// IBM EBCDIC (Denmark-Norway)
		EICP_IBM278                    		= 20278,	// IBM EBCDIC (Finland-Sweden)
		EICP_IBM280                    		= 20280,	// IBM EBCDIC (Italy)
		EICP_IBM284                    		= 20284,	// IBM EBCDIC (Spain)
		EICP_IBM285                    		= 20285,	// IBM EBCDIC (UK)
		EICP_IBM290                    		= 20290,	// IBM EBCDIC (Japanese katakana)
		EICP_IBM297                    		= 20297,	// IBM EBCDIC (France)
		EICP_IBM420                    		= 20420,	// IBM EBCDIC (Arabic)
		EICP_IBM423                    		= 20423,	// IBM EBCDIC (Greek)
		EICP_IBM424                    		= 20424,	// IBM EBCDIC (Hebrew)
		EICP_x_EBCDIC_KoreanExtended   		= 20833,	// IBM EBCDIC (Korean Extended)
		EICP_IBM_Thai                  		= 20838,	// IBM EBCDIC (Thai)
		EICP_koi8_r                    		= 20866,	// Cyrillic (KOI8-R)
		EICP_IBM871                    		= 20871,	// IBM EBCDIC (Icelandic)
		EICP_IBM880                    		= 20880,	// IBM EBCDIC (Cyrillic Russian)
		EICP_IBM905                    		= 20905,	// IBM EBCDIC (Turkish)
		EICP_IBM00924                  		= 20924,	// IBM Latin-1
		EICP_EUC_JP                    		= 20932,	// Japanese (JIS 0208-1990 and 0212-1990)
		EICP_x_cp20936                 		= 20936,	// Chinese Simplified (GB2312-80)
		EICP_x_cp20949                 		= 20949,	// Korean Wansung
		EICP_cp1025                    		= 21025,	// IBM EBCDIC (Cyrillic Serbian-Bulgarian)
		EICP_koi8_u                    		= 21866,	// Cyrillic (KOI8-U)
		EICP_iso_8859_1                		= 28591,	// Western European (ISO)
		EICP_iso_8859_2                		= 28592,	// Central European (ISO)
		EICP_iso_8859_3                		= 28593,	// Latin 3 (ISO)
		EICP_iso_8859_4                		= 28594,	// Baltic (ISO)
		EICP_iso_8859_5                		= 28595,	// Cyrillic (ISO)
		EICP_iso_8859_6                		= 28596,	// Arabic (ISO)
		EICP_iso_8859_7                		= 28597,	// Greek (ISO)
		EICP_iso_8859_8                		= 28598,	// Hebrew (ISO-Visual)
		EICP_iso_8859_9                		= 28599,	// Turkish (ISO)
		EICP_iso_8859_13               		= 28603,	// Estonian (ISO)
		EICP_iso_8859_15               		= 28605,	// Latin 9 (ISO)
		EICP_x_Europa                  		= 29001,	// Europa
		EICP_iso_8859_8_i              		= 38598,	// Hebrew (ISO-Logical)
		EICP_iso_2022_jp               		= 50220,	// Japanese (JIS)
		EICP_csISO2022JP               		= 50221,	// Japanese (JIS-Allow 1 byte Kana)
		EICP_iso_2022_jp_so_si          		= 50222,	// Japanese (JIS-Allow 1 byte Kana - SO/SI)
		EICP_iso_2022_kr               		= 50225,	// Korean (ISO)
		EICP_x_cp50227                 		= 50227,	// Chinese Simplified (ISO-2022)
		EICP_euc_jp                    		= 51932,	// Japanese (EUC)
		EICP_EUC_CN                    		= 51936,	// Chinese Simplified (EUC)
		EICP_euc_kr                    		= 51949,	// Korean (EUC)
		EICP_hz_gb_2312                		= 52936,	// Chinese Simplified (HZ)
		EICP_GB18030                   		= 54936,	// Chinese Simplified (GB18030)
		EICP_x_iscii_de                		= 57002,	// ISCII Devanagari
		EICP_x_iscii_be                		= 57003,	// ISCII Bengali
		EICP_x_iscii_ta                		= 57004,	// ISCII Tamil
		EICP_x_iscii_te                		= 57005,	// ISCII Telugu
		EICP_x_iscii_as                		= 57006,	// ISCII Assamese
		EICP_x_iscii_or                		= 57007,	// ISCII Oriya
		EICP_x_iscii_ka                		= 57008,	// ISCII Kannada
		EICP_x_iscii_ma                		= 57009,	// ISCII Malayalam
		EICP_x_iscii_gu                		= 57010,	// ISCII Gujarati
		EICP_x_iscii_pa                		= 57011,	// ISCII Punjabi
		EICP_utf_7                     		= 65000,	// Unicode (UTF-7)
		EICP_utf_8                     		= 65001,	// Unicode (UTF-8)
		EICP_utf_32                    		= 65005,	// Unicode (UTF-32)
		EICP_utf_32BE                  		= 65006,	// Unicode (UTF-32 Big-Endian)
	};

} // namespace encding
} // namespace sol9